package es.ats.codington.festival.interfaces.services;

import java.util.ArrayList;

import es.ats.codington.festival.domain.Visitor;

/**
 * The Interface IVisitorService.
 */
public interface IVisitorService {
	
	/**
	 * Show visitor.
	 *
	 * @param visitor the visitor
	 * @return true, if successful
	 */
	public boolean showVisitor(Visitor visitor);
	
	/**
	 * Register visitor.
	 *
	 * @param visitor the visitor
	 * @return true, if successful
	 * @throws Exception the exception
	 */
	public boolean registerVisitor(Visitor visitor) throws Exception;
	
	/**
	 * Delete visitor.
	 *
	 * @param idVisitor the id visitor
	 * @return true, if successful
	 * @throws Exception the exception
	 */
	public boolean deleteVisitor(int idVisitor) throws Exception;
	
	/**
	 * Update visitor.
	 *
	 * @param visitor the visitor
	 * @return true, if successful
	 * @throws Exception the exception
	 */
	public boolean updateVisitor(Visitor visitor) throws Exception;
	
	/**
	 * Search visitor by id.
	 *
	 * @param idVisitor the id visitor
	 * @return the visitor
	 * @throws Exception the exception
	 */
	public Visitor searchVisitorById(int idVisitor) throws Exception;
	
	/**
	 * Login visitor.
	 *
	 * @param username the username
	 * @param password the password
	 * @return the visitor
	 */
	public Visitor loginVisitor(String username, String password);
	
	/**
	 * Search all visitors.
	 *
	 * @return the array list
	 */
	public ArrayList<Visitor> searchAllVisitors();
}
